package com.qf.web.admin;

import com.qf.domain.Goods;
import com.qf.service.GoodsService;
import com.qf.service.impl.GoodsServiceImpl;
import com.qf.utils.StringUtils;
import com.qf.web.servlet.BaseServlet;

import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.File;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.UUID;

/*
 *                             _ooOoo_
 *                            o8888888o
 *                            88" . "88
 *                            (| -_- |)
 *                            O\  =  /O
 *                         ____/`---'\____
 *                       .'  \\|     |//  `.
 *                      /  \\|||  :  |||//  \
 *                     /  _||||| -:- |||||-  \
 *                     |   | \\\  -  /// |   |
 *                     | \_|  ''\---/''  |   |
 *                     \  .-\__  `-`  ___/-. /
 *                   ___`. .'  /--.--\  `. . __
 *                ."" '<  `.___\_<|>_/___.'  >'"".
 *               | | :  `- \`.;`\ _ /`;.`/ - ` : | |
 *               \  \ `-.   \_ __\ /__ _/   .-` /  /
 *          ======`-.____`-.___\_____/___.-`____.-'======
 *                             `=---='
 *          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 *                     佛祖保佑        永无BUG
 *            佛曰:
 *                   写字楼里写字间，写字间里程序员；
 *                   程序人员写程序，又拿程序换酒钱。
 *                   酒醒只在网上坐，酒醉还来网下眠；
 *                   酒醉酒醒日复日，网上网下年复年。
 *                   但愿老死电脑间，不愿鞠躬老板前；
 *                   奔驰宝马贵者趣，公交自行程序员。
 *                   别人笑我忒疯癫，我笑自己命太贱；
 *                   不见满街漂亮妹，哪个归得程序员？
 */
@WebServlet(value = "/admin/goodsservlet")
@MultipartConfig(maxFileSize = 1024*1024*5,maxRequestSize = 1024*1024*20)
public class AdminGoodsServlet extends BaseServlet {
    public String addGoods(HttpServletRequest request, HttpServletResponse response) throws Exception{
        //1 判断是否已经登录

        //2 获取数据

        String name = request.getParameter("name");
        String typeid = request.getParameter("typeid");
        String pubdate = request.getParameter("pubdate");
        String price = request.getParameter("price");
        String star = request.getParameter("star");
        Part picture = request.getPart("picture");
        String intro = request.getParameter("intro");

        response.setContentType("text/html;charset=utf-8");
        //3数据校验
        if(StringUtils.empty(name)){
            response.getWriter().write("<script>alert('商品名称不能为空');window.location='addGoods.jsp'</script>");
            return null;
        }
        if(StringUtils.empty(typeid)){
            response.getWriter().write("<script>alert('商品类别不能为空');window.location='addGoods.jsp'</script>");
            return null;
        }
        if(StringUtils.empty(pubdate)){
            response.getWriter().write("<script>alert('上架时间不能为空');window.location='addGoods.jsp'</script>");
            return null;
        }
        if(StringUtils.empty(price)){
            response.getWriter().write("<script>alert('价格不能为空');window.location='addGoods.jsp'</script>");
            return null;
        }
        if(StringUtils.empty(star)){
            response.getWriter().write("<script>alert('热销指数不能为空');window.location='addGoods.jsp'</script>");
            return null;
        }
        if(StringUtils.empty(intro)){
            response.getWriter().write("<script>alert('商品介绍不能为空');window.location='addGoods.jsp'</script>");
            return null;
        }

        //4保存图片
        Collection<Part> parts = request.getParts();

        String submittedFileName = picture.getSubmittedFileName();
        //submittedFileName==null; //普通字段
        String filename=null;
        if(!submittedFileName.equals("")){//是文件，但是没有上传文件
            //上传了文件
            //保存图片
            //1创建文件夹
            String path = this.getServletContext().getRealPath("/WEB-INF/covers/");
            File dir=new File(path);
            if(!dir.exists()){
                dir.mkdirs();
            }
            //2生成新的文件名
            String uuid = UUID.randomUUID().toString().replace("-", "");
            //3获取后缀
            String ext = submittedFileName.substring(submittedFileName.lastIndexOf(".")+1);
             filename=uuid+"."+ext;
            //4保存
            picture.write(path+filename);
        }

        //5 保存数据到数据库
        try {
            GoodsService goodsService=new GoodsServiceImpl();
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            Goods goods=new Goods(0, name, sdf.parse(pubdate), filename, new BigDecimal(price), Integer.parseInt(star), intro,Integer.parseInt(typeid));

            goodsService.addGoods(goods);
            return "redirect:/admin/goodsservlet?method=getGoods";
        } catch (Exception e) {
            e.printStackTrace();
            response.getWriter().write("<script>alert('添加商品失败');window.location='addGoods.jsp'</script>");
        }
        return null;
    }
}
